// 安全拦截器
const jwt = require("jsonwebtoken");

/**
 * 验证权限
 * @param token
 * @param secretkey 秘钥
 * @param success
 * @param error
 */
function verify (token,secretkey){
    return new Promise((resolve,reject)=>{
        jwt.verify(token,secretkey,function(err,decode){
            if(err){
                throw new Error('token失效')
            }else{
                resolve(decode)
            }
        })
    })
}

/**
 * 签名
 * @param load 载荷 json对象 存储存在  被签名的对象
 * @param secretkey 加密的秘钥
 * @param expiresIn 过期时间 秒
 * @returns {number | PromiseLike<ArrayBuffer>}
 */
function sign (load,secretkey,expiresIn) {
    var token = jwt.sign(load,secretkey,{expiresIn: expiresIn});
    return token;
}

module.exports = {verify,sign};

// !async function () {
//     let user = {name:'sjsj',id:1}
//     let token = sign(user,'123456',60)
//     console.log(token)
//     let tmp = await verify(token,'123456')
//     console.log(tmp)
// }()
